#ifndef _BKINECT_H_
#define _BKINECT_H_

#include <buola/bbox/bservice.h>
#include <buola/bbox/bdataout.h>
#include <buola/cv/ccloud.h>
#include <buola/cv/io/ckinect.h>

namespace buola { namespace bkinect {

class BKinect : public bbox::BService<BKinect>
{
public:
    BKinect();
    ~BKinect();

private:
    void OnCloud(const img::CImage_rgb8 &pRGB,const img::CImage_gray32f &pDepth);

public:
    template <class tIntrospector>
    static void Introspect(tIntrospector &pI)
    {
        pI.template AddTerminal("oCloud",&BKinect::oCloud);
    }

private:
    bbox::BDataOut<cvi::CCloud_rgb8> oCloud;

    cvi::CKinect mKinect;
};

/*namespace bkinect*/ } /*namespace buola*/ }

#endif
